package java6703.generic;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapForeach6703 {
    /*
    实现思路：
    （1）创建HashMap<String,String>集合；
    （2）对Map集合中key/value元素的增删改等操作；
    （3）定义两个重载的print6703方法，分别调用方法，用二种不同的方法遍历Map集合；
     */

    public static void main(String[] args) {

        //创建HashMap<String,String>集合
        HashMap<String, String> hashMap = new HashMap<String, String>();

        //按key增加;
        hashMap.put("1", "壹");
        hashMap.put("2", "贰");
        hashMap.put("3", "叁");
        hashMap.put("4", "肆");
        hashMap.put("5", "伍");
        //按key修改（覆盖），返回旧的value
        hashMap.put("5", "壹");
        System.out.println(hashMap);

        //按key删除，返回被删除的value
        System.out.println(hashMap.remove("4"));

        //按key查找，返回对应的value
        System.out.println(hashMap.get("3"));

        //判断是否存在key
        System.out.println(hashMap.containsKey("4"));

        System.out.println("==============================");
        print6703(hashMap);
        System.out.println("==============================");
        print6703(hashMap.entrySet());

    }

    //利用Key的Set集合遍历Map集合的方法
    public static void print6703(HashMap<String, String> hashMap) {
        Set<String> set = hashMap.keySet();
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(hashMap.get(iterator.next()));
        }
    }

    //利用Set<Map.Entry<K,V>>的集合遍历Map集合
    public static void print6703(Set<Map.Entry<String, String>> entries) {
        for (Map.Entry<String, String> item : entries) {
            System.out.println(item.getKey() + "=" + item.getValue());
        }
    }
}
